#include "tcp_server.hpp"
#include<memory>

static void usage(std::string proc)
{
    std::cout<<"\nUsage "<<proc<<" port\n"<<std::endl; 
}

int main(int argc, char* argv[]) // 主函数，argc表示命令行参数个数，argv是参数数组
{
    if(argc !=2) // 检查命令行参数个数是否为2（程序名和端口号）
    {
        usage(argv[0]); // 如果参数个数不对，调用usage函数显示用法
        exit(1); // 退出程序，返回状态码1表示错误
    }

    uint16_t port  = atoi(argv[1]); // 将命令行第二个参数（端口号）转换为整数
    std::unique_ptr<TcpServer> svr(new TcpServer(port)); // 创建一个TcpServer对象的智能指针，传入端口号
    svr->initServer(); // 初始化服务器
    svr->start(); // 启动服务器
    return 0; // 程序正常结束，返回0
};